package cluster

import "time"

/**
 * @inventory inventory for cluster
 * @example {
 * "inventory": {
 * "createDate": "Apr 28, 2014 5:54:09 PM",
 * "description": "test",
 * "hypervisorType": "KVM",
 * "lastOpDate": "Apr 28, 2014 5:54:09 PM",
 * "name": "cluster1",
 * "state": "Enabled",
 * "type": "zstack",
 * "uuid": "c1bd173d5cd84f0e9e7c47195ae27ec6",
 * "zoneUuid": "1b830f5bd1cb469b821b4b77babfdd6f"
 * }
 * }
 * @since 0.1.0
 */
//  @Inventory(mappingVOClass = ClusterVO.class)
//  @PythonClassInventory
//  @ExpandedQueries({
// 		 @ExpandedQuery(expandedField = "zone", inventoryClass = ZoneInventory.class,
// 				 foreignKey = "zoneUuid", expandedInventoryKey = "uuid"),
// 		 @ExpandedQuery(expandedField = "host", inventoryClass = HostInventory.class,
// 				 foreignKey = "uuid", expandedInventoryKey = "clusterUuid"),
// 		 @ExpandedQuery(expandedField = "vmInstance", inventoryClass = VmInstanceInventory.class,
// 				 foreignKey = "uuid", expandedInventoryKey = "clusterUuid"),
// 		 @ExpandedQuery(expandedField = "l2NetworkRef", inventoryClass = L2NetworkClusterRefInventory.class,
// 				 foreignKey = "uuid", expandedInventoryKey = "clusterUuid", hidden = true),
// 		 @ExpandedQuery(expandedField = "l2VlanNetworkRef", inventoryClass = L2NetworkClusterRefInventory.class,
// 				 foreignKey = "uuid", expandedInventoryKey = "clusterUuid", hidden = true),
// 		 @ExpandedQuery(expandedField = "primaryStorageRef", inventoryClass = PrimaryStorageClusterRefInventory.class,
// 				 foreignKey = "uuid", expandedInventoryKey = "clusterUuid", hidden = true),
//  })
//  @ExpandedQueryAliases({
// 		 @ExpandedQueryAlias(alias = "l2Network", expandedField = "l2NetworkRef.l2Network"),
// 		 @ExpandedQueryAlias(alias = "l2VlanNetwork", expandedField = "l2VlanNetworkRef.l2Network"),
// 		 @ExpandedQueryAlias(alias = "primaryStorage", expandedField = "primaryStorageRef.primaryStorage"),
//  })
type ClusterInventory struct {
	Name           string
	Uuid           string
	Description    string
	State          string
	HypervisorType string
	CreateDate     time.Time
	LastOpDate     time.Time
	ZoneUuid       string
	Type           string
	Architecture   string
}
